﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Arcana.Contract
{
    /// <summary>
    /// Represents a contract that compares values.
    /// </summary>
    public interface IComparerContract : IContract
    {
        /// <summary>
        /// Represents the comparer used to compare values.
        /// </summary>
        /// <value>The comparer to use when comparing values to check contract validity.</value>
        /// <remarks>
        /// This property is by default set to <see cref="System.Collections.Comparer.Default"/>.
        /// </remarks>
        /// <exception cref="System.ArgumentNullException"><i>value</i> is <b>null</b>.</exception>
        System.Collections.IComparer Comparer { get; set; }
    }
}
